Published on

docker一键运行windows macos.mdx

Authors
  1. 项目简介

dockurr/windows 是一个 Docker 镜像,它利用 KVM(基于内核的虚拟机)在 Docker 容器内运行 Windows 操作系统。

核心原理:Docker 容器 -> QEMU/KVM -> Windows OS。

主要用途:测试环境、沙盒运行 Windows 应用、CI/CD 管道、无需双系统的 Windows 体验。

GitHub/Docker Hub: dockurr/windows

  1. 前置要求 (非常重要)

由于需要运行虚拟机,硬件加速是必须的。

⚠️ KVM 支持: 宿主机(Host)必须支持并开启 KVM (Kernel-based Virtual Machine)。

Linux: 需要加载 kvm 模块。

Windows (WSL2): 需要在 .wslconfig 中开启嵌套虚拟化。

macOS: 性能可能会受限,通常需要使用 QEMU 的模拟模式(较慢)。

  1. 快速开始 (Quick Start) 方式一:Docker CLI

最简单的运行方式,默认会下载并安装 Windows 11。 Bash

docker run -it --rm -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-timeout 120 dockurr/windows

方式二:Docker Compose (推荐)

使用 Compose 文件可以更方便地管理配置和持久化数据。 YAML

version: "3" services: windows: image: dockurr/windows container_name: windows environment:

  • VERSION=win11
  • RAM_SIZE=8G
  • CPU_CORES=4
  • DISK_SIZE=64G devices:
  • /dev/kvm cap_add:
  • NET_ADMIN ports:
  • 8006:8006 # Web 访问端口
  • 3389:3389 # RDP 远程桌面端口 volumes:
  • ./data:/storage # 持久化系统盘 stop_grace_period: 2m restart: on-failure
  1. 关键配置详解 (Environment Variables)

可以通过环境变量自定义安装的 Windows 版本和硬件资源。 变量名 描述 示例值 备注 VERSION 指定 Windows 版本 win11, win10, win7, win8.1, win2022 (Server) 默认为 win11 RAM_SIZE 分配内存大小 4G, 8G, 16G 建议至少 4G CPU_CORES 分配 CPU 核心数 2, 4, 8 核心越多越流畅 DISK_SIZE C 盘大小 64G, 128G 初始安装后会自动扩展 ISO 自定义镜像地址 http://.../win.iso 如果不想自动下载官方镜像 MANUAL 手动安装模式 Y 或 N 默认为 N (全自动无人值守安装) 5. 如何连接与使用 A. Web 浏览器访问 (noVNC)

容器启动后,在浏览器访问:http://localhost:8006

这是最直接的控制台访问方式,可以看到安装进度和 BIOS 界面。

B. 远程桌面 (RDP)

推荐方式,性能比 Web 更好,支持剪贴板共享和音频。

使用 Windows 自带的 "远程桌面连接" 或 macOS 的 "Microsoft Remote Desktop"。

地址:localhost:3389

默认凭据:无需密码,或根据安装后的提示设置。

  1. 数据持久化与存储

如果不挂载 Volume,容器删除后 Windows 系统也会丢失。

系统盘持久化: 挂载 /storage 目录。 YAML

volumes:

  • ./win_data:/storage

共享宿主机文件: 可以将宿主机的文件挂载到 Windows 内部的 "D 盘" (VirtIO 驱动)。 YAML

volumes:

  • /home/user/downloads:/shared

注:在 Windows 内部,这通常显示为一个网络驱动器或附加磁盘。

  1. 常见问题 (Troubleshooting)

    安装速度慢: 第一次启动时,容器需要下载 Windows ISO(约 5GB+)并执行自动安装。这可能需要 30-60 分钟,取决于网速和 CPU 性能。请耐心等待,可以通过 Web 界面 (:8006) 查看进度。

    没有网络: 确保添加了 --cap-add NET_ADMIN 权限。

    KVM 报错: 如果日志显示 "KVM not available",请检查 BIOS 是否开启虚拟化(VT-x/AMD-V),以及宿主机的权限设置。

    Windows 激活: 默认安装的是评估版或未激活版。如果长期使用,你需要输入自己的正版序列号进行激活。

  2. 进阶玩法

    自定义 ISO:如果你有修改过的精简版 Windows ISO,可以将其重命名为 custom.iso 并放入 /storage 目录,容器会优先使用它。

    DHCP/独立 IP:如果希望 Windows 有局域网内的独立 IP,需要配置 Docker 的 macvlan 网络模式。